{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "data = pd.read_csv(\"./data.csv\");\n",
    "\n",
    "X = data.iloc[:,[1,2]].to_numpy();\n",
    "\n",
    "y = data.loc[:, 'PASS']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, '数学-语文')"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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cK4iIiIShd4gWFxLIlWV1YZ6B4Fr6Ng94W9SH06yyMSFiIhIMjjJIhEREbklJi5EREQkGUxciIiISDKYuBAREZFkMHEhIiIiyWDiQkRERJLBxIWIiIgkg4kLERERSQYTFyIiIpIMJi5EREQkGUxciIiISDKYuBAREZFkiJa4LFmyBDExMfDz88Pdd9+N06dPAwByc3ORmJiI4OBgpKenw43mgCQiIqJmEiVxOXXqFN555x1s2LABx48fR1xcHMaMGQOdToehQ4eiR48e2L9/P/Ly8pCRkSFGiEREROSCRElcDh48iKSkJHTv3h1t2rTBE088gZMnT2Lz5s1Qq9WYN28e4uLiMGPGDCxdulSMEImIiMgFKcTYaXx8PH744QccOnQIsbGxWLRoEQYMGICcnBwkJSXBz88PAJCQkIC8vLwGt6PT6aDT6Uz3NRqNw2MnIiIi8YhyxiU+Ph4jRoxAt27dEBQUhOzsbMyZMwcajQaxsbGmdjKZDHK5HCUlJfVuZ+bMmQgMDDTdYmJinHUIREREJAJREpe9e/fim2++wS+//ILS0lKMHDkSgwcPhkKhgFKpNGvr6+uL8vLyerczadIkqNVq062goMAZ4RMREZFIRElcvvjiCzz88MO44447EBgYiGnTpuHUqVMICQlBcXGxWVutVgsfH596t6NUKqFSqcxuRERE5L5EqXExGAy4fPmy6b5Wq0V5eTkUCgWys7NNy/Pz86HT6RASEiJGmERERORiRDnjkpycjPXr12P+/PlYvXo17r//foSHh+OFF16ARqPBsmXLAAAzZsxA//79IZfLxQiTiIiIXIwoZ1wefPBBHDt2DAsWLEBRURG6dOmCr7/+Gt7e3liyZAlGjhyJ9PR0eHl5YceOHWKESERERC5IJrjg0LQXLlzAgQMHkJSUhFatWlm8nkajQWBgINRqNetdiIiIJMKa729Rzrg0JTw8HKmpqWKHQURERC6GkywSERGRZDBxISIiIslg4kJERESSwcSFiIiIJIOJCxEREUkGExciIiKSDCYuREREJBlMXIiIiEgymLgQERGRZDBxISIiIslg4kJERESSwcSFiIiIJIOJCxEREUkGExciIiKSDCYuREREJBlMXIiIiEgymLgQERGRZDBxISIiIslg4kJERESSwcSFiIiIJIOJCxEREUkGExciIiKSDCYuREREJBlM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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制图像\n",
    "from matplotlib import pyplot as plt\n",
    "import matplotlib.font_manager\n",
    " \n",
    "# 指定中文字体\n",
    "# 指定支持中文的字体\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei'] # 推荐使用SimHei字体显示中文\n",
    "plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题fig = plt.figure()\n",
    "mask = data.loc[:,'PASS']==1\n",
    "\n",
    "passed = plt.scatter(data.loc[:,u\"语文成绩\"][mask], data.loc[:,u\"数学成绩\"][mask])\n",
    "failed = plt.scatter(data.loc[:,u\"语文成绩\"][~mask], data.loc[:,u\"数学成绩\"][~mask])\n",
    "plt.ylabel(u\"数学\")\n",
    "plt.xlabel(u\"语文\")\n",
    "plt.legend((passed,failed), ('passed', 'failed'))\n",
    "plt.title(\"数学-语文\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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hZ07dwrffPONcOONNwoTJ070iOdeEATh999/F1QqlfD+++8LBQUFwttvvy34+PgI58+f94jjr5OcnCysWrXKdN8TXv+bNm0SfH19hcWLFwvr168XBg8eLHTq1Emorq72mOd+/vz5QnJysum+p7zvm8PERUK2b98uxMfHC/7+/sLYsWOFkpISQRAEYcuWLYKvr6/Qvn17oUOHDsKJEydEjtSxHnnkEWH16tWCIAjC+++/L7Rp00YICgoSYmNjheLiYnGDc5CXXnpJCAgIEIKDg4Vnn31WqKioEATBc577H3/8UUhKShLatm0rdOnSRcjIyBAEwXOOv7KyUvD29hZOnjxpttzdX/8Gg0F4/fXXhY4dOwpt2rQRevfuLRw+fFgQBM947q9cuSIEBwcL+/fvN1vuCcfeHM4O7SaKi4tx6NAhJCUloX379mKH41R5eXk4deoUkpOT4efnJ3Y4TufJzz3A4/fk178nP/eefOxMXIiIiEgyWJxLREREksHEhYiIiCSDiQsRERFJBhMXIiIikgwmLkQkqqtXrwIABEHA1atXodfrG7TR6/WoqqpydmhE5IIUYgdARJ4rOzsbY8eOxb59+1BVVYXhw4fD29sbOp0OJ06cQN++fQEYE5e+ffvigw8+aLCN5557DgkJCXjsscecHT4RiYCXQxORqJ555hlcvnwZn332mWnZnj178NRTTyEnJ6fF9bdv346HHnoIv/76KwIDAx0YKRG5AiYuRCSqqqoqXLx4EXFxcVi4cCGys7Nx8eJF5OXlYfTo0QAALy8vLFq0CFqtFpcvX4ZSqYSX15893S+++CImTZqEG2+80bRMr9ejpqYGnTt3dvYhEZEDMXEhIlFUV1dDJpOZJg0EgB9//BHl5eV444038H//93+466678Ouvv2LBggUoKSnBJ598gueffx4+Pj64dOkSfHx8oFD82eNdW1uLyspK+Pn5Qa/Xw9/fH8XFxWIcHhE5CItziUgUc+fORUhICHx9ffHPf/4TADBw4ECMHDkShYWFePjhh3HvvfciJiYGMTExAIAJEybg8uXLuHjxIu6++24sW7YM5eXlptt7772HgQMHQqPR4OrVq0xaiNwQz7gQkahee+01XL16FcnJydi2bRsAYMWKFZg0aRKUSiWOHj2K8+fP45577sGkSZNw6623AgDee+89HDx4EOnp6aZtTZgwAR07dsScOXPEOBQicgImLkQkqtdeew1VVVWYMWMGrl27BqVSCZlM1qBdTU0N2rVrB19fXwDA5cuX0a1bN5w5cwaBgYFQq9WIiYnBgQMH0K1bN2cfBhE5CS+HJiKXUFNTg9raWvTs2bPRx7Ozs9GhQwfT/fbt2+PBBx/Ea6+9hqVLl+Ktt97C4MGDmbQQuTkmLkQkuoKCAgwYMACZmZmora1FeXm52eOBgYGQy+UN1ps1axZuueUW+Pv7Y9myZThw4ICTIiYisbA4l4hEt2HDBgwZMsTUDWSp9u3b44UXXsCcOXNw1113IS4uzkEREpGrYOJCRKI6d+4cBg8ejHfffbfZdvXL8UpKSpCWloZ33nkH69evR0lJCQYOHIivvvqqQVsich/sKiIi0Vy7ds00PotcLkdVVRU0Gk2DQeM0Gg10Oh0uX76Mr7/+Gl999RUyMzPx0EMPITs7G/7+/njwwQfxwQcf4Omnn0Z1dTXuuece3H777ZwKgMjN8KoiInIZgiCgsrIS7dq1a/TxyspK3HfffRg8eDAmTpyIsLCwBm1qamrwzTff4D//+Q+GDRuGBx54wNFhE5ETMXEhIiIiyWCNCxEREUkGExciIiKSDCYuREREJBlMXIiIiEgymLgQERGRZDBxISIiIslg4kJERESSwcSFiIiIJIOJCxEREUnG/wOkN7cP3jZ2HgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "\n",
    "# k 表示中心的数量、即分成几类 \n",
    "KM = KMeans(n_clusters=2, random_state=0)\n",
    "# 训练\n",
    "KM.fit(X);\n",
    "centers = KM.cluster_centers_\n",
    "\n",
    "passed = plt.scatter(data.loc[:,u\"语文成绩\"][mask], data.loc[:,u\"数学成绩\"][mask])\n",
    "failed = plt.scatter(data.loc[:,u\"语文成绩\"][~mask], data.loc[:,u\"数学成绩\"][~mask])\n",
    "plt.ylabel(u\"数学\")\n",
    "plt.xlabel(u\"语文\")\n",
    "plt.legend((passed,failed), ('passed', 'failed'))\n",
    "plt.title(\"数学-语文\")\n",
    "\n",
    "plt.scatter(centers[:,0], centers[:, 1])\n",
    "\n",
    "plt.show();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1]\n"
     ]
    }
   ],
   "source": [
    "# 预测\n",
    "y_predict = KM.predict([[80, 60]]);\n",
    "\n",
    "print(y_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0]\n"
     ]
    },
    {
     "data": {
      "image/png": "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0lnDkiVLBADh5eUldu7cKbZs2SL8/Pwq7JeZmVlpYlu5vLw88e9//1vUqVNH9OvXT7i7u4v3339f3Lp1y2rlJbKFO5Nzv/76a7F69WpRv3598dRTTxn2gYlE+HI5OTkiICBAPPnkk2Lbtm1i1apVIigoSLz22mtCCCFKSkrEPffcI9q1ayc2b94sFi1aJLy9vS3Kcfnhhx8Mybnbt28X06ZNEwqFQqSkpBjt98svv4g6deqIb775RuzYsUPMmzfP4vfj+PHjYv78+aJdu3YCgGjatKlYsmSJKC0tFVqtVgwePFgAsHiG2aCgILFs2TKLy1OZ8PBwAUD0799flJWViY4dO4q5c+dW2O/55583OajgTps2bRL169cXjzzyiGjUqJFo3759rWYllxsOhyYA+j7V+++/H5mZmWjRogVSUlKgUChw5MgRLF26FI899himTJmCunXr4tFHH0VmZqbdy7h//34AwPLlyw191UIIXL9+3eiRm5tb6TnOnDmDt956C02aNMHx48exd+9eJCcnY926dfj4448RERGBcePGYffu3YZhl0SOaPr06Rg/fjxefPFFdO3aFZ999plZxwUHB+Pnn39Gfn4++vbti3HjxuGll14ytCy4u7sjJSUFQUFB+Oc//4n58+fj7bfftqhsffr0wYYNG/DLL7+gV69eWL9+PdauXYuePXsa7detWze8/fbbeOWVV9C9e3ds3rzZotcBgPvuuw++vr74888/8eGHH2Ly5Mn47rvvcPHiRTzxxBM4ceIEZs6ciQkTJiAxMVGSRVUvXryIK1euoH379li9erWh6+327dsV6i+NRmPyHBqNBt999x06d+6MAQMGYNSoUUhNTcWxY8fQvHlz/OMf/0DXrl2xbNkyw2zmTkvqyImkt3LlStGnTx9Rr149MXHiRFFYWCiE0GevP/LII8Lf3198/fXXQgghLl26JO6//35Rr169Su/oDhw4ILZu3Sri4+MNo4Bqq6CgQERERIjhw4cbtm3atKnKoYR3Zt3PmjVLtGrVynBHtmjRogpZ/QUFBWLGjBmiUaNGAoCoV6+eePPNN61SfiJrKW9xycnJkbookjp//rwYN26ciIiIEO3btxe7du0SQuhHE06bNk3Uq1dP9OnTR9y8eVMIIcScOXOEm5ub6Nevn9BqtSbPefPmTbF161bx9ddfCzc3twqjoGpq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buC+++7DmTNn4O/vj/z8fERERGD//v2477777H0ZRGRnrDvIFA6HJrspLS1FWVkZWrVqZfL5tLQ01K9f3/B7UFAQnn76aUydOhXz5s3DRx99hG7durHiIXIxrDvoTgxcyC6ysrLQqVMnpKSkoKysDHl5eUbP+/v7Q6lUVjhu2rRpePDBB+Hj44MFCxZg//79dioxETkC1h10N86cS3axatUqdO/e3dCUa66goCCMHTsW77//Ph5//HFERUXZqIRE5IhYd9DdGLiQzZ07dw7dunXDJ598UuV+d6dbXbt2DePHj8fHH3+MlStX4tq1a3jkkUfwww8/VNiXiJwP6w4yhV1FZFNFRUWGORaUSiWKi4uhVqsrTPykVquh0Whw48YNbNq0CT/88ANSUlLwzDPPIC0tDT4+Pnj66afxv//9D6+88gpKSkrQs2dPPProo5zOm8gJse6gynBUEdmVEAKFhYWoW7euyecLCwsxcOBAdOvWDQkJCQgJCamwT2lpKX788Ud888036NWrF5566ilbF5uIJMa6g8oxcCEiIiLZYI4LERERyQYDFyIiIpINBi5EREQkGwxciIiISDYYuBAREZFsMHAhIiIi2WDgQkRERLLBwIWIiIhkg4ELERERycb/A8NLe3fWNSHiAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 预测原始数据\n",
    "y_predict = KM.predict(X);\n",
    "\n",
    "print(y_predict)\n",
    "\n",
    "# 对比结果\n",
    "\n",
    "plt.subplot(121)\n",
    "\n",
    "passed = plt.scatter(data.loc[:,u\"语文成绩\"][mask], data.loc[:,u\"数学成绩\"][mask])\n",
    "failed = plt.scatter(data.loc[:,u\"语文成绩\"][~mask], data.loc[:,u\"数学成绩\"][~mask])\n",
    "plt.ylabel(u\"数学\")\n",
    "plt.xlabel(u\"语文\")\n",
    "plt.legend((passed,failed), ('passed', 'failed'))\n",
    "plt.title(\"数学-语文\")\n",
    "\n",
    "plt.scatter(centers[:,0], centers[:, 1])\n",
    "\n",
    "\n",
    "plt.subplot(122)\n",
    "\n",
    "b_zero = y_predict==0;\n",
    "t_one = y_predict = 1\n",
    "passed_2 = plt.scatter(data.loc[:,u\"语文成绩\"][t_one], data.loc[:,u\"数学成绩\"][t_one])\n",
    "failed_2 = plt.scatter(data.loc[:,u\"语文成绩\"][b_zero], data.loc[:,u\"数学成绩\"][b_zero])\n",
    "plt.ylabel(u\"数学\")\n",
    "plt.xlabel(u\"语文\")\n",
    "plt.legend((passed_2,failed_2), ('passed', 'failed'))\n",
    "plt.title(\"predict-数学-语文\")\n",
    "\n",
    "plt.scatter(centers[:,0], centers[:, 1])\n",
    "\n",
    "plt.show();\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据矫正\n",
    "y_predict_real = [];\n",
    "\n",
    "for i in range(y_predict):\n",
    "    if i==0:\n",
    "        y_predict_real.append(0)\n",
    "    else:\n",
    "        y_predict_real.append(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-8 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-8 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-8 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-8 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-8 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-8 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-8 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-8 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-8 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-8 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-8 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-8 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-8 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-8 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-8 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-8 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-8 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-8 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-8 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-8\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>KNeighborsClassifier(n_neighbors=2)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" checked><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;KNeighborsClassifier<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.neighbors.KNeighborsClassifier.html\">?<span>Documentation for KNeighborsClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>KNeighborsClassifier(n_neighbors=2)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "KNeighborsClassifier(n_neighbors=2)"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# KNN\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "\n",
    "KNN = KNeighborsClassifier(n_neighbors=2);\n",
    "\n",
    "KNN.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0\n",
      " 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0\n",
      " 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      "1.0\n",
      "1    49\n",
      "0    49\n",
      "Name: count, dtype: int64 PASS\n",
      "1    49\n",
      "0    49\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "# 预测\n",
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "knn_predict = KNN.predict(X)\n",
    "\n",
    "print(knn_predict)\n",
    "\n",
    "# 查看正确率\n",
    "res = accuracy_score(y, knn_predict);\n",
    "\n",
    "\n",
    "\n",
    "print(res)\n",
    "\n",
    "print(pd.value_counts(knn_predict), pd.value_counts(y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制图表\n",
    "\n",
    "plt.subplot(121)\n",
    "\n",
    "passed = plt.scatter(data.loc[:,u\"语文成绩\"][mask], data.loc[:,u\"数学成绩\"][mask])\n",
    "failed = plt.scatter(data.loc[:,u\"语文成绩\"][~mask], data.loc[:,u\"数学成绩\"][~mask])\n",
    "plt.ylabel(u\"数学\")\n",
    "plt.xlabel(u\"语文\")\n",
    "plt.legend((passed,failed), ('passed', 'failed'))\n",
    "plt.title(\"数学-语文\")\n",
    "\n",
    "plt.scatter(centers[:,0], centers[:, 1])\n",
    "\n",
    "\n",
    "plt.subplot(122)\n",
    "\n",
    "b_zero = knn_predict==0;\n",
    "t_one = knn_predict == 1\n",
    "passed_2 = plt.scatter(data.loc[:,u\"语文成绩\"][t_one], data.loc[:,u\"数学成绩\"][t_one])\n",
    "failed_2 = plt.scatter(data.loc[:,u\"语文成绩\"][b_zero], data.loc[:,u\"数学成绩\"][b_zero])\n",
    "plt.ylabel(u\"数学\")\n",
    "plt.xlabel(u\"语文\")\n",
    "plt.legend((passed_2,failed_2), ('passed', 'failed'))\n",
    "plt.title(\"predict-数学-语文\")\n",
    "\n",
    "plt.scatter(centers[:,0], centers[:, 1])\n",
    "\n",
    "plt.show();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "22.104845145365108\n"
     ]
    }
   ],
   "source": [
    "# 均值漂移算法\n",
    "from sklearn.cluster import MeanShift, estimate_bandwidth\n",
    "\n",
    "# 估算半径\n",
    "bw = estimate_bandwidth(X, n_samples=500)\n",
    "\n",
    "print(bw);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-9 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-9 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-9 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-9 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-9 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-9 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-9 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-9 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-9 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-9 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-9 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-9 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-9 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-9 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-9 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-9 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-9 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-9 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-9 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-9\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>MeanShift(bandwidth=22.104845145365108)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" checked><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;MeanShift<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.cluster.MeanShift.html\">?<span>Documentation for MeanShift</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>MeanShift(bandwidth=22.104845145365108)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "MeanShift(bandwidth=22.104845145365108)"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 建立模型\n",
    "ms = MeanShift(bandwidth=bw)\n",
    "\n",
    "ms.fit(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    49\n",
      "1    22\n",
      "2    13\n",
      "3    13\n",
      "4     1\n",
      "Name: count, dtype: int64 PASS\n",
      "1    49\n",
      "0    49\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "y_predict_ms = ms.predict(X)\n",
    "\n",
    "print(pd.value_counts(y_predict_ms), pd.value_counts(y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[86.71428571 88.75510204]\n",
      " [90.09090909 53.54545455]\n",
      " [46.92307692 90.15384615]\n",
      " [41.1        37.1       ]\n",
      " [86.         19.        ]]\n",
      "[88.75510204 53.54545455 90.15384615 37.1        19.        ]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制\n",
    "# 绘制图表\n",
    "\n",
    "plt.subplot(121)\n",
    "\n",
    "passed = plt.scatter(data.loc[:,u\"语文成绩\"][mask], data.loc[:,u\"数学成绩\"][mask])\n",
    "failed = plt.scatter(data.loc[:,u\"语文成绩\"][~mask], data.loc[:,u\"数学成绩\"][~mask])\n",
    "plt.ylabel(u\"数学\")\n",
    "plt.xlabel(u\"语文\")\n",
    "plt.legend((passed,failed), ('passed', 'failed'))\n",
    "plt.title(\"数学-语文\")\n",
    "\n",
    "plt.scatter(centers[:,0], centers[:, 1])\n",
    "\n",
    "centers = ms.cluster_centers_;\n",
    "print(centers);\n",
    "print(centers[:,1]);\n",
    "plt.subplot(122)\n",
    "\n",
    "b_zero = y_predict_ms==0;\n",
    "t_one = y_predict_ms == 1\n",
    "b_two = y_predict_ms==2;\n",
    "t_three = y_predict_ms == 3\n",
    "t_four = y_predict_ms == 4\n",
    "\n",
    "passed_1_0 = plt.scatter(data.loc[:,u\"语文成绩\"][t_one], data.loc[:,u\"数学成绩\"][t_one])\n",
    "failed_1_0 = plt.scatter(data.loc[:,u\"语文成绩\"][b_zero], data.loc[:,u\"数学成绩\"][b_zero])\n",
    "passed_2_1 = plt.scatter(data.loc[:,u\"语文成绩\"][b_two], data.loc[:,u\"数学成绩\"][b_two])\n",
    "failed_2_2 = plt.scatter(data.loc[:,u\"语文成绩\"][t_three], data.loc[:,u\"数学成绩\"][t_three])\n",
    "failed_3_1 = plt.scatter(data.loc[:,u\"语文成绩\"][t_four], data.loc[:,u\"数学成绩\"][t_four])\n",
    "\n",
    "plt.ylabel(u\"数学\")\n",
    "plt.xlabel(u\"语文\")\n",
    "plt.legend((passed_1_0,failed_1_0, passed_2_1, failed_2_2, failed_3_1),\n",
    "            ('passed_1_0','failed_1_0','passed_2_1', 'failed_2_2', 'failed_3_1'))\n",
    "plt.title(\"predict-数学-语文\")\n",
    "\n",
    "plt.scatter(centers[:,0], centers[:, 1])\n",
    "\n",
    "plt.show();"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
